﻿/*
 * Copyright 2010 Edward L. Stauff.                  Contact: <EdStauff@gmail.com>.
 * 
 * This file, "Chars.cs", is part of the "Stauffware.Common" class library.
 * "Stauffware.Common" is free software: you can redistribute it and/or 
 * modify it under the terms of the GNU Lesser Public License as published by the 
 * Free Software Foundation, either version 3 of the License, or (at your option) 
 * any later version.
 * 
 * "Stauffware.Common" is distributed in the hope that it will be useful, 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser Public License for more 
 * details.
 * 
 * You should have received a copy of the GNU Lesser Public License along with 
 * the "Stauffware.Common" sources.  If not, see <http://www.gnu.org/licenses/>.
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Stauffware.Common.Core
{
	/// <summary>
	/// Useful unicode character constants.
	/// </summary>
	public static class Chars
	{
#pragma warning disable 1591  // disable warnings for missing XML comments

		//						 Named			Decimal		Hex			Unicode		ASCII
		//						 Entity			Entity,		Entity		Character	Approx.

		public static readonly CharEncoding NonBreakingSpace =		
				new CharEncoding("&nbsp;",		"&#160;",	"&#xA0;",	"\u00A0",	" "	 	);		// no-break space = non-breaking space
		public static readonly CharEncoding InvertedExclamation =	
				new CharEncoding("&iexcl;",		"&#161;",	"&#xA1;",	"\u00A1",	"!"	 	);		// inverted exclamation mark
		public static readonly CharEncoding Cent =					
				new CharEncoding("&cent;",		"&#162;",	"&#xA2;",	"\u00A2",	"c"	 	);		// cent sign
		public static readonly CharEncoding Pound =					
				new CharEncoding("&pound;",		"&#163;",	"&#xA3;",	"\u00A3",	"lb" 	);		// pound sign
		public static readonly CharEncoding Currency =				
				new CharEncoding("&curren;",	"&#164;",	"&#xA4;",	"\u00A4",	"$" 	);		// currency sign
		public static readonly CharEncoding Yen =				
				new CharEncoding("&yen;",		"&#165;",	"&#xA5;",	"\u00A5",	""	 	);		// yen sign = yuan sign
		public static readonly CharEncoding BrokenVerticalBar =		
				new CharEncoding("&brvbar;",	"&#166;",	"&#xA6;",	"\u00A6",	"|" 	);		// broken bar = broken vertical bar
		public static readonly CharEncoding Section =				
				new CharEncoding("&sect;",		"&#167;",	"&#xA7;",	"\u00A7",	""	 	);		// section sign
		public static readonly CharEncoding Diaeresis =				
				new CharEncoding("&uml;",		"&#168;",	"&#xA8;",	"\u00A8",	".." 	);		// diaeresis = spacing diaeresis
		public static readonly CharEncoding Copyright =				
				new CharEncoding("&copy;",		"&#169;",	"&#xA9;",	"\u00A9",	"(c)" 	);		// copyright sign
		public static readonly CharEncoding FeminineOrdinal =				
				new CharEncoding("&ordf;",		"&#170;",	"&#xAA;",	"\u00AA",	""	 	);		// feminine ordinal indicator
		public static readonly CharEncoding LeftDoubleAngleQuote =	
				new CharEncoding("&laquo;",		"&#171;",	"&#xAB;",	"\u00AB",	"<<" 	);		// left-pointing double angle quotation mark = left pointing guillemet
		public static readonly CharEncoding NotSign =				
				new CharEncoding("&not;",		"&#172;",	"&#xAC;",	"\u00AC",	"~" 	);		// not sign
		public static readonly CharEncoding SoftHyphen =			
				new CharEncoding("&shy;",		"&#173;",	"&#xAD;",	"\u00AD",	""	 	);		// soft hyphen = discretionary hyphen
		public static readonly CharEncoding Registered =			
				new CharEncoding("&reg;",		"&#174;",	"&#xAE;",	"\u00AE",	"(R)" 	);		// registered sign = registered trade mark sign
		public static readonly CharEncoding Macron =				
				new CharEncoding("&macr;",		"&#175;",	"&#xAF;",	"\u00AF",	""	 	);		// macron = spacing macron = overline = APL overbar
		public static readonly CharEncoding Degree =				
				new CharEncoding("&deg;",		"&#176;",	"&#xB0;",	"\u00B0",	"deg" 	);		// degree sign
		public static readonly CharEncoding PlusMinus =				
				new CharEncoding("&plusmn;",	"&#177;",	"&#xB1;",	"\u00B1",	"+/-" 	);		// plus-minus sign = plus-or-minus sign
		public static readonly CharEncoding Super2 =				
				new CharEncoding("&sup2;",		"&#178;",	"&#xB2;",	"\u00B2",	""	 	);		// superscript two = superscript digit two = squared
		public static readonly CharEncoding Super3 =				
				new CharEncoding("&sup3;",		"&#179;",	"&#xB3;",	"\u00B3",	""	 	);		// superscript three = superscript digit three = cubed
		public static readonly CharEncoding AcuteAccent =				
				new CharEncoding("&acute;",		"&#180;",	"&#xB4;",	"\u00B4",	""	 	);		// acute accent = spacing acute
		public static readonly CharEncoding Micro =					
				new CharEncoding("&micro;",		"&#181;",	"&#xB5;",	"\u00B5",	""	 	);		// micro sign
		public static readonly CharEncoding Paragraph =				
				new CharEncoding("&para;",		"&#182;",	"&#xB6;",	"\u00B6",	""	 	);		// pilcrow sign = paragraph sign
		public static readonly CharEncoding MiddleDot =				
				new CharEncoding("&middot;",	"&#183;",	"&#xB7;",	"\u00B7",	""	 	);		// middle dot = Georgian comma = Greek middle dot
		public static readonly CharEncoding Cedilla =				
				new CharEncoding("&cedil;",		"&#184;",	"&#xB8;",	"\u00B8",	""	 	);		// cedilla = spacing cedilla
		public static readonly CharEncoding Super1 =				
				new CharEncoding("&sup1;",		"&#185;",	"&#xB9;",	"\u00B9",	""	 	);		// superscript one = superscript digit one
		public static readonly CharEncoding MasculineOrdinal =				
				new CharEncoding("&ordm;",		"&#186;",	"&#xBA;",	"\u00BA",	""	 	);		// masculine ordinal indicator
		public static readonly CharEncoding RightDoubleAngleQuote = 
				new CharEncoding("&raquo;",		"&#187;",	"&#xBB;",	"\u00BB",	">>" 	);		// right-pointing double angle quotation mark = right pointing guillemet
		public static readonly CharEncoding OneQuarter =			
				new CharEncoding("&frac14;",	"&#188;",	"&#xBC;",	"\u00BC",	"1/4" 	);		// vulgar fraction one quarter = fraction one quarter
		public static readonly CharEncoding OneHalf =				
				new CharEncoding("&frac12;",	"&#189;",	"&#xBD;",	"\u00BD",	"1/2" 	);		// vulgar fraction one half = fraction one half
		public static readonly CharEncoding ThreeQuarters =			
				new CharEncoding("&frac34;",	"&#190;",	"&#xBE;",	"\u00BE",	"3/4" 	);		// vulgar fraction three quarters = fraction three quarters
		public static readonly CharEncoding InvertedQuestion =		
				new CharEncoding("&iquest;",	"&#191;",	"&#xBF;",	"\u00BF",	"?" 	);		// inverted question mark = turned question mark
		public static readonly CharEncoding AgraveUpper =				
				new CharEncoding("&Agrave;",	"&#192;",	"&#xC0;",	"\u00C0",	"A" 	);		// Latin capital letter A with grave = Latin capital letter A grave
		public static readonly CharEncoding AacuteUpper =				
				new CharEncoding("&Aacute;",	"&#193;",	"&#xC1;",	"\u00C1",	"A" 	);		// Latin capital letter A with acute
		public static readonly CharEncoding AcircumflexUpper =				
				new CharEncoding("&Acirc;",		"&#194;",	"&#xC2;",	"\u00C2",	"A" 	);		// Latin capital letter A with circumflex
		public static readonly CharEncoding AtildeUpper =				
				new CharEncoding("&Atilde;",	"&#195;",	"&#xC3;",	"\u00C3",	"A" 	);		// Latin capital letter A with tilde
		public static readonly CharEncoding AdiaeresisUpper =				
				new CharEncoding("&Auml;",		"&#196;",	"&#xC4;",	"\u00C4",	"A" 	);		// Latin capital letter A with diaeresis
		public static readonly CharEncoding AringUpper =				
				new CharEncoding("&Aring;",		"&#197;",	"&#xC5;",	"\u00C5",	"A" 	);		// Latin capital letter A with ring above = Latin capital letter A ring
		public static readonly CharEncoding AEupper =				
				new CharEncoding("&AElig;",		"&#198;",	"&#xC6;",	"\u00C6",	"AE" 	);		// Latin capital letter AE = Latin capital ligature AE
		public static readonly CharEncoding CcedillaUpper =				
				new CharEncoding("&Ccedil;",	"&#199;",	"&#xC7;",	"\u00C7",	"C" 	);		// Latin capital letter C with cedilla
		public static readonly CharEncoding EgraveUpper =				
				new CharEncoding("&Egrave;",	"&#200;",	"&#xC8;",	"\u00C8",	"E" 	);		// Latin capital letter E with grave
		public static readonly CharEncoding EacuteUpper =				
				new CharEncoding("&Eacute;",	"&#201;",	"&#xC9;",	"\u00C9",	"E" 	);		// Latin capital letter E with acute
		public static readonly CharEncoding EcircumflexUpper =				
				new CharEncoding("&Ecirc;",		"&#202;",	"&#xCA;",	"\u00CA",	"E" 	);		// Latin capital letter E with circumflex
		public static readonly CharEncoding EdiaeresisUpper =				
				new CharEncoding("&Euml;",		"&#203;",	"&#xCB;",	"\u00CB",	"E" 	);		// Latin capital letter E with diaeresis
		public static readonly CharEncoding IgraveUpper =				
				new CharEncoding("&Igrave;",	"&#204;",	"&#xCC;",	"\u00CC",	"I" 	);		// Latin capital letter I with grave
		public static readonly CharEncoding IacuteUpper =				
				new CharEncoding("&Iacute;",	"&#205;",	"&#xCD;",	"\u00CD",	"I" 	);		// Latin capital letter I with acute
		public static readonly CharEncoding IcircumflexUpper =				
				new CharEncoding("&Icirc;",		"&#206;",	"&#xCE;",	"\u00CE",	"I" 	);		// Latin capital letter I with circumflex
		public static readonly CharEncoding IdiaeresisUpper =				
				new CharEncoding("&Iuml;",		"&#207;",	"&#xCF;",	"\u00CF",	"I" 	);		// Latin capital letter I with diaeresis
		public static readonly CharEncoding EthUpper =				
				new CharEncoding("&ETH;",		"&#208;",	"&#xD0;",	"\u00D0",	"D" 	);		// Latin capital letter ETH
		public static readonly CharEncoding NtildeUpper =				
				new CharEncoding("&Ntilde;",	"&#209;",	"&#xD1;",	"\u00D1",	"N" 	);		// Latin capital letter N with tilde
		public static readonly CharEncoding OgraveUpper =				
				new CharEncoding("&Ograve;",	"&#210;",	"&#xD2;",	"\u00D2",	"O" 	);		// Latin capital letter O with grave
		public static readonly CharEncoding OacuteUpper =				
				new CharEncoding("&Oacute;",	"&#211;",	"&#xD3;",	"\u00D3",	"O" 	);		// Latin capital letter O with acute
		public static readonly CharEncoding OcircumflexUpper =				
				new CharEncoding("&Ocirc;",		"&#212;",	"&#xD4;",	"\u00D4",	"O" 	);		// Latin capital letter O with circumflex
		public static readonly CharEncoding OtildeUpper =				
				new CharEncoding("&Otilde;",	"&#213;",	"&#xD5;",	"\u00D5",	"O" 	);		// Latin capital letter O with tilde
		public static readonly CharEncoding OdiaeresisUpper =				
				new CharEncoding("&Ouml;",		"&#214;",	"&#xD6;",	"\u00D6",	"O" 	);		// Latin capital letter O with diaeresis
		public static readonly CharEncoding Multiplication =		
				new CharEncoding("&times;",		"&#215;",	"&#xD7;",	"\u00D7",	"x" 	);		// multiplication sign
		public static readonly CharEncoding OslashUpper =				
				new CharEncoding("&Oslash;",	"&#216;",	"&#xD8;",	"\u00D8",	"O" 	);		// Latin capital letter O with stroke = Latin capital letter O slash
		public static readonly CharEncoding UgraveUpper =				
				new CharEncoding("&Ugrave;",	"&#217;",	"&#xD9;",	"\u00D9",	"U" 	);		// Latin capital letter U with grave
		public static readonly CharEncoding UacuteUpper =				
				new CharEncoding("&Uacute;",	"&#218;",	"&#xDA;",	"\u00DA",	"U" 	);		// Latin capital letter U with acute
		public static readonly CharEncoding UcircumflexUpper =				
				new CharEncoding("&Ucirc;",		"&#219;",	"&#xDB;",	"\u00DB",	"U" 	);		// Latin capital letter U with circumflex
		public static readonly CharEncoding UumlautUpper =				
				new CharEncoding("&Uuml;",		"&#220;",	"&#xDC;",	"\u00DC",	"U" 	);		// Latin capital letter U with diaeresis
		public static readonly CharEncoding YacuteUpper =				
				new CharEncoding("&Yacute;",	"&#221;",	"&#xDD;",	"\u00DD",	"Y" 	);		// Latin capital letter Y with acute
		public static readonly CharEncoding ThornUpper =				
				new CharEncoding("&THORN;",		"&#222;",	"&#xDE;",	"\u00DE",	""	 	);		// Latin capital letter THORN
		public static readonly CharEncoding SharpSLower =				
				new CharEncoding("&szlig;",		"&#223;",	"&#xDF;",	"\u00DF",	"ss" 	);		// Latin small letter sharp s = ess-zed
		public static readonly CharEncoding AgraveLower =				
				new CharEncoding("&agrave;",	"&#224;",	"&#xE0;",	"\u00E0",	"a" 	);		// Latin small letter a with grave = Latin small letter a grave
		public static readonly CharEncoding AacuteLower =				
				new CharEncoding("&aacute;",	"&#225;",	"&#xE1;",	"\u00E1",	"a" 	);		// Latin small letter a with acute
		public static readonly CharEncoding AcircumflexLower =				
				new CharEncoding("&acirc;",		"&#226;",	"&#xE2;",	"\u00E2",	"a" 	);		// Latin small letter a with circumflex
		public static readonly CharEncoding AtildeLower =				
				new CharEncoding("&atilde;",	"&#227;",	"&#xE3;",	"\u00E3",	"a" 	);		// Latin small letter a with tilde
		public static readonly CharEncoding AumlautLower =				
				new CharEncoding("&auml;",		"&#228;",	"&#xE4;",	"\u00E4",	"a" 	);		// Latin small letter a with diaeresis
		public static readonly CharEncoding AringLower =				
				new CharEncoding("&aring;",		"&#229;",	"&#xE5;",	"\u00E5",	"a" 	);		// Latin small letter a with ring above = Latin small letter a ring
		public static readonly CharEncoding AEligatureLower =				
				new CharEncoding("&aelig;",		"&#230;",	"&#xE6;",	"\u00E6",	"ae" 	);		// Latin small letter ae = Latin small ligature ae
		public static readonly CharEncoding CcedillaLower =				
				new CharEncoding("&ccedil;",	"&#231;",	"&#xE7;",	"\u00E7",	"c" 	);		// Latin small letter c with cedilla
		public static readonly CharEncoding EgraveLower =				
				new CharEncoding("&egrave;",	"&#232;",	"&#xE8;",	"\u00E8",	"e" 	);		// Latin small letter e with grave
		public static readonly CharEncoding EacuteLower =				
				new CharEncoding("&eacute;",	"&#233;",	"&#xE9;",	"\u00E9",	"e" 	);		// Latin small letter e with acute
		public static readonly CharEncoding EcircumflexLower =				
				new CharEncoding("&ecirc;",		"&#234;",	"&#xEA;",	"\u00EA",	"e" 	);		// Latin small letter e with circumflex
		public static readonly CharEncoding EumlautLower =				
				new CharEncoding("&euml;",		"&#235;",	"&#xEB;",	"\u00EB",	"e" 	);		// Latin small letter e with diaeresis
		public static readonly CharEncoding IgraveLower =				
				new CharEncoding("&igrave;",	"&#236;",	"&#xEC;",	"\u00EC",	"i" 	);		// Latin small letter i with grave
		public static readonly CharEncoding IacuteLower =				
				new CharEncoding("&iacute;",	"&#237;",	"&#xED;",	"\u00ED",	"i" 	);		// Latin small letter i with acute
		public static readonly CharEncoding IcircumflexLower =				
				new CharEncoding("&icirc;",		"&#238;",	"&#xEE;",	"\u00EE",	"i" 	);		// Latin small letter i with circumflex
		public static readonly CharEncoding IumlautLower =				
				new CharEncoding("&iuml;",		"&#239;",	"&#xEF;",	"\u00EF",	"i" 	);		// Latin small letter i with diaeresis
		public static readonly CharEncoding EthLower =				
				new CharEncoding("&eth;",		"&#240;",	"&#xF0;",	"\u00F0",	"d" 	);		// Latin small letter eth
		public static readonly CharEncoding NtildeLower =				
				new CharEncoding("&ntilde;",	"&#241;",	"&#xF1;",	"\u00F1",	"n" 	);		// Latin small letter n with tilde
		public static readonly CharEncoding OgraveLower =				
				new CharEncoding("&ograve;",	"&#242;",	"&#xF2;",	"\u00F2",	"o" 	);		// Latin small letter o with grave
		public static readonly CharEncoding OacuteLower =				
				new CharEncoding("&oacute;",	"&#243;",	"&#xF3;",	"\u00F3",	"o" 	);		// Latin small letter o with acute
		public static readonly CharEncoding OcircumflexLower =				
				new CharEncoding("&ocirc;",		"&#244;",	"&#xF4;",	"\u00F4",	"o" 	);		// Latin small letter o with circumflex
		public static readonly CharEncoding OtildeLower =				
				new CharEncoding("&otilde;",	"&#245;",	"&#xF5;",	"\u00F5",	"o" 	);		// Latin small letter o with tilde
		public static readonly CharEncoding OumlautLower =				
				new CharEncoding("&ouml;",		"&#246;",	"&#xF6;",	"\u00F6",	"o" 	);		// Latin small letter o with diaeresis
		public static readonly CharEncoding OslashLower =				
				new CharEncoding("&oslash;",	"&#248;",	"&#xF8;",	"\u00F8",	"o" 	);		// Latin small letter o with stroke = Latin small letter o slash
		public static readonly CharEncoding UgraveLower =				
				new CharEncoding("&ugrave;",	"&#249;",	"&#xF9;",	"\u00F9",	"u" 	);		// Latin small letter u with grave
		public static readonly CharEncoding UacuteLower =				
				new CharEncoding("&uacute;",	"&#250;",	"&#xFA;",	"\u00FA",	"u" 	);		// Latin small letter u with acute
		public static readonly CharEncoding UcircumflexLower =				
				new CharEncoding("&ucirc;",		"&#251;",	"&#xFB;",	"\u00FB",	"u" 	);		// Latin small letter u with circumflex
		public static readonly CharEncoding UumlautLower =				
				new CharEncoding("&uuml;",		"&#252;",	"&#xFC;",	"\u00FC",	"u" 	);		// Latin small letter u with diaeresis
		public static readonly CharEncoding YacuteLower =				
				new CharEncoding("&yacute;",	"&#253;",	"&#xFD;",	"\u00FD",	"y" 	);		// Latin small letter y with acute
		public static readonly CharEncoding YumlautLower =				
				new CharEncoding("&yuml;",		"&#255;",	"&#xFF;",	"\u00FF",	"y" 	);		// Latin small letter y with diaeresis
		public static readonly CharEncoding ThornLower =				
				new CharEncoding("&thorn;",		"&#254;",	"&#xFE;",	"\u00FE",	""	 	);		// Latin small letter thorn
		public static readonly CharEncoding Division =				
				new CharEncoding("&divide;",	"&#247;",	"&#xF7;",	"\u00F7",	"/" 	);		// division sign
		public static readonly CharEncoding Florin =				
				new CharEncoding("&fnof;",		"&#402;",	"&#x192;",	"\u0192",	"f" 	);		// Latin small f with hook = function = florin
		public static readonly CharEncoding AlphaUpper =				
				new CharEncoding("&Alpha;",		"&#913;",	"&#x391;",	"\u0391",	"A" 	);		// Greek capital letter alpha
		public static readonly CharEncoding BetaUpper =				
				new CharEncoding("&Beta;",		"&#914;",	"&#x392;",	"\u0392",	"B" 	);		// Greek capital letter beta
		public static readonly CharEncoding GammaUpper =				
				new CharEncoding("&Gamma;",		"&#915;",	"&#x393;",	"\u0393",	"G" 	);		// Greek capital letter gamma
		public static readonly CharEncoding DeltaUpper =				
				new CharEncoding("&Delta;",		"&#916;",	"&#x394;",	"\u0394",	"D" 	);		// Greek capital letter delta
		public static readonly CharEncoding EpsilonUpper =				
				new CharEncoding("&Epsilon;",	"&#917;",	"&#x395;",	"\u0395",	"E" 	);		// Greek capital letter epsilon
		public static readonly CharEncoding ZetaUpper =				
				new CharEncoding("&Zeta;",		"&#918;",	"&#x396;",	"\u0396",	"Z" 	);		// Greek capital letter zeta
		public static readonly CharEncoding EtaUpper =				
				new CharEncoding("&Eta;",		"&#919;",	"&#x397;",	"\u0397",	"H" 	);		// Greek capital letter eta
		public static readonly CharEncoding ThetaUpper =				
				new CharEncoding("&Theta;",		"&#920;",	"&#x398;",	"\u0398",	""	 	);		// Greek capital letter theta
		public static readonly CharEncoding IotaUpper =				
				new CharEncoding("&Iota;",		"&#921;",	"&#x399;",	"\u0399",	"I" 	);		// Greek capital letter iota
		public static readonly CharEncoding KappaUpper =				
				new CharEncoding("&Kappa;",		"&#922;",	"&#x39A;",	"\u039A",	"K" 	);		// Greek capital letter kappa
		public static readonly CharEncoding LambdaUpper =				
				new CharEncoding("&Lambda;",	"&#923;",	"&#x39B;",	"\u039B",	"L" 	);		// Greek capital letter lambda
		public static readonly CharEncoding MuUpper =				
				new CharEncoding("&Mu;",		"&#924;",	"&#x39C;",	"\u039C",	"M" 	);		// Greek capital letter mu
		public static readonly CharEncoding NuUpper =				
				new CharEncoding("&Nu;",		"&#925;",	"&#x39D;",	"\u039D",	"N" 	);		// Greek capital letter nu
		public static readonly CharEncoding XiUpper =				
				new CharEncoding("&Xi;",		"&#926;",	"&#x39E;",	"\u039E",	""	 	);		// Greek capital letter xi
		public static readonly CharEncoding OmicronUpper =				
				new CharEncoding("&Omicron;",	"&#927;",	"&#x39F;",	"\u039F",	"O" 	);		// Greek capital letter omicron
		public static readonly CharEncoding PiUpper =				
				new CharEncoding("&Pi;",		"&#928;",	"&#x3A0;",	"\u03A0",	""	 	);		// Greek capital letter pi
		public static readonly CharEncoding RhoUpper =				
				new CharEncoding("&Rho;",		"&#929;",	"&#x3A1;",	"\u03A1",	"P" 	);		// Greek capital letter rho
		public static readonly CharEncoding SigmaUpper =				
				new CharEncoding("&Sigma;",		"&#931;",	"&#x3A3;",	"\u03A3",	"S" 	);		// Greek capital letter sigma
		public static readonly CharEncoding TauUpper =				
				new CharEncoding("&Tau;",		"&#932;",	"&#x3A4;",	"\u03A4",	"T" 	);		// Greek capital letter tau
		public static readonly CharEncoding UpsilonUpper =				
				new CharEncoding("&Upsilon;",	"&#933;",	"&#x3A5;",	"\u03A5",	"Y" 	);		// Greek capital letter upsilon
		public static readonly CharEncoding PhiUpper =				
				new CharEncoding("&Phi;",		"&#934;",	"&#x3A6;",	"\u03A6",	""	 	);		// Greek capital letter phi
		public static readonly CharEncoding ChiUpper =				
				new CharEncoding("&Chi;",		"&#935;",	"&#x3A7;",	"\u03A7",	"X" 	);		// Greek capital letter chi
		public static readonly CharEncoding PsiUpper =				
				new CharEncoding("&Psi;",		"&#936;",	"&#x3A8;",	"\u03A8",	""	 	);		// Greek capital letter psi
		public static readonly CharEncoding OmegaUpper =				
				new CharEncoding("&Omega;",		"&#937;",	"&#x3A9;",	"\u03A9",	""	 	);		// Greek capital letter omega
		public static readonly CharEncoding AlphaLower =				
				new CharEncoding("&alpha;",		"&#945;",	"&#x3B1;",	"\u03B1",	"a" 	);		// Greek small letter alpha
		public static readonly CharEncoding BetaLower =				
				new CharEncoding("&beta;",		"&#946;",	"&#x3B2;",	"\u03B2",	"b" 	);		// Greek small letter beta
		public static readonly CharEncoding GammaLower =				
				new CharEncoding("&gamma;",		"&#947;",	"&#x3B3;",	"\u03B3",	"g" 	);		// Greek small letter gamma
		public static readonly CharEncoding DeltaLower =				
				new CharEncoding("&delta;",		"&#948;",	"&#x3B4;",	"\u03B4",	"d" 	);		// Greek small letter delta
		public static readonly CharEncoding EpsilonLower =				
				new CharEncoding("&epsilon;",	"&#949;",	"&#x3B5;",	"\u03B5",	"e" 	);		// Greek small letter epsilon
		public static readonly CharEncoding ZetaLower =				
				new CharEncoding("&zeta;",		"&#950;",	"&#x3B6;",	"\u03B6",	"z" 	);		// Greek small letter zeta
		public static readonly CharEncoding EtaLower =				
				new CharEncoding("&eta;",		"&#951;",	"&#x3B7;",	"\u03B7",	"h" 	);		// Greek small letter eta
		public static readonly CharEncoding ThetaLower =				
				new CharEncoding("&theta;",		"&#952;",	"&#x3B8;",	"\u03B8",	""	 	);		// Greek small letter theta
		public static readonly CharEncoding IotaLower =				
				new CharEncoding("&iota;",		"&#953;",	"&#x3B9;",	"\u03B9",	"i" 	);		// Greek small letter iota
		public static readonly CharEncoding KappaLower =				
				new CharEncoding("&kappa;",		"&#954;",	"&#x3BA;",	"\u03BA",	"k" 	);		// Greek small letter kappa
		public static readonly CharEncoding LambdaLower =				
				new CharEncoding("&lambda;",	"&#955;",	"&#x3BB;",	"\u03BB",	"l" 	);		// Greek small letter lambda
		public static readonly CharEncoding MuLower =				
				new CharEncoding("&mu;",		"&#956;",	"&#x3BC;",	"\u03BC",	"m" 	);		// Greek small letter mu
		public static readonly CharEncoding NuLower =				
				new CharEncoding("&nu;",		"&#957;",	"&#x3BD;",	"\u03BD",	"n" 	);		// Greek small letter nu
		public static readonly CharEncoding XiLower =				
				new CharEncoding("&xi;",		"&#958;",	"&#x3BE;",	"\u03BE",	""	 	);		// Greek small letter xi
		public static readonly CharEncoding OmicronLower =				
				new CharEncoding("&omicron;",	"&#959;",	"&#x3BF;",	"\u03BF",	"o" 	);		// Greek small letter omicron
		public static readonly CharEncoding PiLower =				
				new CharEncoding("&pi;",		"&#960;",	"&#x3C0;",	"\u03C0",	""	 	);		// Greek small letter pi
		public static readonly CharEncoding RhoLower =				
				new CharEncoding("&rho;",		"&#961;",	"&#x3C1;",	"\u03C1",	"p" 	);		// Greek small letter rho
		public static readonly CharEncoding SigmaLowerFinal =				
				new CharEncoding("&sigmaf;",	"&#962;",	"&#x3C2;",	"\u03C2",	"s" 	);		// Greek small letter final sigma
		public static readonly CharEncoding SigmaLower =				
				new CharEncoding("&sigma;",		"&#963;",	"&#x3C3;",	"\u03C3",	"s" 	);		// Greek small letter sigma
		public static readonly CharEncoding TauLower =				
				new CharEncoding("&tau;",		"&#964;",	"&#x3C4;",	"\u03C4",	"t" 	);		// Greek small letter tau
		public static readonly CharEncoding UpsilonLower =				
				new CharEncoding("&upsilon;",	"&#965;",	"&#x3C5;",	"\u03C5",	"u" 	);		// Greek small letter upsilon
		public static readonly CharEncoding PhiLower =				
				new CharEncoding("&phi;",		"&#966;",	"&#x3C6;",	"\u03C6",	""	 	);		// Greek small letter phi
		public static readonly CharEncoding ChiLower =				
				new CharEncoding("&chi;",		"&#967;",	"&#x3C7;",	"\u03C7",	"x" 	);		// Greek small letter chi
		public static readonly CharEncoding PsiLower =				
				new CharEncoding("&psi;",		"&#968;",	"&#x3C8;",	"\u03C8",	""	 	);		// Greek small letter psi
		public static readonly CharEncoding OmegaLower =				
				new CharEncoding("&omega;",		"&#969;",	"&#x3C9;",	"\u03C9",	"w" 	);		// Greek small letter omega
		public static readonly CharEncoding ThetaSymbol =				
				new CharEncoding("&thetasym;",	"&#977;",	"&#x3D1;",	"\u03D1",	""	 	);		// Greek small letter theta symbol
		public static readonly CharEncoding UpsilonLowerHook =				
				new CharEncoding("&upsih;",		"&#978;",	"&#x3D2;",	"\u03D2",	""	 	);		// Greek upsilon with hook symbol
		public static readonly CharEncoding PiSymbol =				
				new CharEncoding("&piv;",		"&#982;",	"&#x3D6;",	"\u03D6",	""	 	);		// Greek pi symbol
		public static readonly CharEncoding Bullet =				
				new CharEncoding("&bull;",		"&#8226;",	"&#x2022;",	"\u2022",	""	 	);		// bullet = black small circle
		public static readonly CharEncoding Ellipsis =				
				new CharEncoding("&hellip;",	"&#8230;",	"&#x2026;",	"\u2026",	"..." 	);		// horizontal ellipsis = three dot leader
		public static readonly CharEncoding Prime =					
				new CharEncoding("&prime;",		"&#8242;",	"&#x2032;",	"\u2032",	"'" 	);		// prime = minutes = feet
		public static readonly CharEncoding DoublePrime =			
				new CharEncoding("&Prime;",		"&#8243;",	"&#x2033;",	"\u2033",	"\""	);		// double prime = seconds = inches
		public static readonly CharEncoding Overline =				
				new CharEncoding("&oline;",		"&#8254;",	"&#x203E;",	"\u203E",	""	 	);		// overline = spacing overscore
		public static readonly CharEncoding FractionSlash =				
				new CharEncoding("&frasl;",		"&#8260;",	"&#x2044;",	"\u2044",	"/" 	);		// fraction slash
		public static readonly CharEncoding PowerSet =				
				new CharEncoding("&weierp;",	"&#8472;",	"&#x2118;",	"\u2118",	"P" 	);		// script capital P = power set = Weierstrass p
		public static readonly CharEncoding ImaginaryPart =				
				new CharEncoding("&image;",		"&#8465;",	"&#x2111;",	"\u2111",	"I" 	);		// blackletter capital I = imaginary part
		public static readonly CharEncoding RealPart =				
				new CharEncoding("&real;",		"&#8476;",	"&#x211C;",	"\u211C",	"R" 	);		// blackletter capital R = real part symbol
		public static readonly CharEncoding Trademark =				
				new CharEncoding("&trade;",		"&#8482;",	"&#x2122;",	"\u2122",	"(tm)" 	);		// trade mark sign
		public static readonly CharEncoding AlefSymbol =				
				new CharEncoding("&alefsym;",	"&#8501;",	"&#x2135;",	"\u2135",	""	 	);		// alef symbol = first transfinite cardinal
		public static readonly CharEncoding LeftArrow =				
				new CharEncoding("&larr;",		"&#8592;",	"&#x2190;",	"\u2190",	""	 	);		// leftwards arrow
		public static readonly CharEncoding UpArrow =				
				new CharEncoding("&uarr;",		"&#8593;",	"&#x2191;",	"\u2191",	""	 	);		// upwards arrow
		public static readonly CharEncoding RightArrow =				
				new CharEncoding("&rarr;",		"&#8594;",	"&#x2192;",	"\u2192",	""	 	);		// rightwards arrow
		public static readonly CharEncoding DownArrow =				
				new CharEncoding("&darr;",		"&#8595;",	"&#x2193;",	"\u2193",	""	 	);		// downwards arrow
		public static readonly CharEncoding LeftRightArrow =				
				new CharEncoding("&harr;",		"&#8596;",	"&#x2194;",	"\u2194",	""	 	);		// left right arrow
		public static readonly CharEncoding DownLeftArrow =				
				new CharEncoding("&crarr;",		"&#8629;",	"&#x21B5;",	"\u21B5",	""	 	);		// downwards arrow with corner leftwards = carriage return
		public static readonly CharEncoding LeftDoubleArrow =				
				new CharEncoding("&lArr;",		"&#8656;",	"&#x21D0;",	"\u21D0",	""	 	);		// leftwards double arrow
		public static readonly CharEncoding UpDoubleArrow =				
				new CharEncoding("&uArr;",		"&#8657;",	"&#x21D1;",	"\u21D1",	""	 	);		// upwards double arrow
		public static readonly CharEncoding RightDoubleArrow =				
				new CharEncoding("&rArr;",		"&#8658;",	"&#x21D2;",	"\u21D2",	""	 	);		// rightwards double arrow
		public static readonly CharEncoding DownDoubleArrow =				
				new CharEncoding("&dArr;",		"&#8659;",	"&#x21D3;",	"\u21D3",	""	 	);		// downwards double arrow
		public static readonly CharEncoding LeftRightDoubleArrow =				
				new CharEncoding("&hArr;",		"&#8660;",	"&#x21D4;",	"\u21D4",	""	 	);		// left right double arrow
		public static readonly CharEncoding ForAll =				
				new CharEncoding("&forall;",	"&#8704;",	"&#x2200;",	"\u2200",	""	 	);		// for all
		public static readonly CharEncoding PartialDifferential =				
				new CharEncoding("&part;",		"&#8706;",	"&#x2202;",	"\u2202",	""	 	);		// partial differential
		public static readonly CharEncoding ThereExists =				
				new CharEncoding("&exist;",		"&#8707;",	"&#x2203;",	"\u2203",	""	 	);		// there exists
		public static readonly CharEncoding EmptySet =				
				new CharEncoding("&empty;",		"&#8709;",	"&#x2205;",	"\u2205",	""	 	);		// empty set = null set = diameter
		public static readonly CharEncoding Nabla =				
				new CharEncoding("&nabla;",		"&#8711;",	"&#x2207;",	"\u2207",	""	 	);		// nabla = backward difference
		public static readonly CharEncoding ElementOf =				
				new CharEncoding("&isin;",		"&#8712;",	"&#x2208;",	"\u2208",	""	 	);		// element of
		public static readonly CharEncoding NotElementOf =				
				new CharEncoding("&notin;",		"&#8713;",	"&#x2209;",	"\u2209",	""	 	);		// not an element of
		public static readonly CharEncoding ContainsMember =				
				new CharEncoding("&ni;",		"&#8715;",	"&#x220B;",	"\u220B",	""	 	);		// contains as member
		public static readonly CharEncoding ProductSign =				
				new CharEncoding("&prod;",		"&#8719;",	"&#x220F;",	"\u220F",	""	 	);		// n-ary product = product sign
		public static readonly CharEncoding Summation =				
				new CharEncoding("&sum;",		"&#8721;",	"&#x2211;",	"\u2211",	""	 	);		// n-ary sumation
		public static readonly CharEncoding MinusSign =				
				new CharEncoding("&minus;",		"&#8722;",	"&#x2212;",	"\u2212",	""	 	);		// minus sign
		public static readonly CharEncoding AsteriskOperator =				
				new CharEncoding("&lowast;",	"&#8727;",	"&#x2217;",	"\u2217",	""	 	);		// asterisk operator
		public static readonly CharEncoding Radical =				
				new CharEncoding("&radic;",		"&#8730;",	"&#x221A;",	"\u221A",	""	 	);		// square root = radical sign
		public static readonly CharEncoding Proportion =				
				new CharEncoding("&prop;",		"&#8733;",	"&#x221D;",	"\u221D",	""	 	);		// proportional to
		public static readonly CharEncoding Infinity =				
				new CharEncoding("&infin;",		"&#8734;",	"&#x221E;",	"\u221E",	""	 	);		// infinity
		public static readonly CharEncoding Angle =				
				new CharEncoding("&ang;",		"&#8736;",	"&#x2220;",	"\u2220",	""	 	);		// angle
		public static readonly CharEncoding LogicalAnd =				
				new CharEncoding("&and;",		"&#8743;",	"&#x2227;",	"\u2227",	""	 	);		// logical and = wedge
		public static readonly CharEncoding LogicalOr =				
				new CharEncoding("&or;",		"&#8744;",	"&#x2228;",	"\u2228",	""	 	);		// logical or = vee
		public static readonly CharEncoding IntersectionCap =				
				new CharEncoding("&cap;",		"&#8745;",	"&#x2229;",	"\u2229",	""	 	);		// intersection = cap
		public static readonly CharEncoding UnionCup =				
				new CharEncoding("&cup;",		"&#8746;",	"&#x222A;",	"\u222A",	""	 	);		// union = cup
		public static readonly CharEncoding Integral =				
				new CharEncoding("&int;",		"&#8747;",	"&#x222B;",	"\u222B",	""	 	);		// integral
		public static readonly CharEncoding Therefore =				
				new CharEncoding("&there4;",	"&#8756;",	"&#x2234;",	"\u2234",	""	 	);		// therefore
		public static readonly CharEncoding Similarity =				
				new CharEncoding("&sim;",		"&#8764;",	"&#x223C;",	"\u223C",	"~" 	);		// tilde operator = varies with = similar to
		public static readonly CharEncoding ApproximatelyEqual =	
				new CharEncoding("&cong;",		"&#8773;",	"&#x2245;",	"\u2245",	""	 	);		// approximately equal to
		public static readonly CharEncoding Asymptote =				
				new CharEncoding("&asymp;",		"&#8776;",	"&#x2248;",	"\u2248",	""	 	);		// almost equal to = asymptotic to
		public static readonly CharEncoding NotEqual =				
				new CharEncoding("&ne;",		"&#8800;",	"&#x2260;",	"\u2260",	""	 	);		// not equal to
		public static readonly CharEncoding Identical =				
				new CharEncoding("&equiv;",		"&#8801;",	"&#x2261;",	"\u2261",	""	 	);		// identical to
		public static readonly CharEncoding LessOrEqual =			
				new CharEncoding("&le;",		"&#8804;",	"&#x2264;",	"\u2264",	"<=" 	);		// less-than or equal to
		public static readonly CharEncoding GreaterOrEqual =		
				new CharEncoding("&ge;",		"&#8805;",	"&#x2265;",	"\u2265",	">=" 	);		// greater-than or equal to
		public static readonly CharEncoding Subset =				
				new CharEncoding("&sub;",		"&#8834;",	"&#x2282;",	"\u2282",	""	 	);		// subset of
		public static readonly CharEncoding Superset =				
				new CharEncoding("&sup;",		"&#8835;",	"&#x2283;",	"\u2283",	""	 	);		// superset of
		public static readonly CharEncoding NotSubset =				
				new CharEncoding("&nsub;",		"&#8836;",	"&#x2284;",	"\u2284",	""	 	);		// not a subset of
		public static readonly CharEncoding SubsetOrEqual =				
				new CharEncoding("&sube;",		"&#8838;",	"&#x2286;",	"\u2286",	""	 	);		// subset of or equal to
		public static readonly CharEncoding SupersetOrEqual =				
				new CharEncoding("&supe;",		"&#8839;",	"&#x2287;",	"\u2287",	""	 	);		// superset of or equal to
		public static readonly CharEncoding CirclePlus =				
				new CharEncoding("&oplus;",		"&#8853;",	"&#x2295;",	"\u2295",	""	 	);		// circled plus = direct sum
		public static readonly CharEncoding CircleTimes =				
				new CharEncoding("&otimes;",	"&#8855;",	"&#x2297;",	"\u2297",	""	 	);		// circled times = vector product
		public static readonly CharEncoding Perpendicular =				
				new CharEncoding("&perp;",		"&#8869;",	"&#x22A5;",	"\u22A5",	""	 	);		// up tack = orthogonal to = perpendicular
		public static readonly CharEncoding DotOperator =				
				new CharEncoding("&sdot;",		"&#8901;",	"&#x22C5;",	"\u22C5",	""	 	);		// dot operator
		public static readonly CharEncoding LeftCeiling =				
				new CharEncoding("&lceil;",		"&#8968;",	"&#x2308;",	"\u2308",	""	 	);		// left ceiling = APL upstile
		public static readonly CharEncoding RightCeiling =				
				new CharEncoding("&rceil;",		"&#8969;",	"&#x2309;",	"\u2309",	""	 	);		// right ceiling
		public static readonly CharEncoding LeftFloor =				
				new CharEncoding("&lfloor;",	"&#8970;",	"&#x230A;",	"\u230A",	""	 	);		// left floor = APL downstile
		public static readonly CharEncoding RightFloor =				
				new CharEncoding("&rfloor;",	"&#8971;",	"&#x230B;",	"\u230B",	""	 	);		// right floor
		public static readonly CharEncoding LeftAngleBracket =		
				new CharEncoding("&lang;",		"&#9001;",	"&#x2329;",	"\u2329",	""	 	);		// left-pointing angle bracket = bra
		public static readonly CharEncoding RightAngleBracket =		
				new CharEncoding("&rang;",		"&#9002;",	"&#x232A;",	"\u232A",	""	 	);		// right-pointing angle bracket = ket
		public static readonly CharEncoding Lozenge =				
				new CharEncoding("&loz;",		"&#9674;",	"&#x25CA;",	"\u25CA",	""	 	);		// lozenge
		public static readonly CharEncoding SpadeSuit =				
				new CharEncoding("&spades;",	"&#9824;",	"&#x2660;",	"\u2660",	""	 	);		// black spade suit
		public static readonly CharEncoding ClubSuit =				
				new CharEncoding("&clubs;",		"&#9827;",	"&#x2663;",	"\u2663",	""	 	);		// black club suit = shamrock
		public static readonly CharEncoding HeartSuit =				
				new CharEncoding("&hearts;",	"&#9829;",	"&#x2665;",	"\u2665",	""	 	);		// black heart suit = valentine
		public static readonly CharEncoding DiamondSuit =				
				new CharEncoding("&diams;",		"&#9830;",	"&#x2666;",	"\u2666",	""	 	);		// black diamond suit
		public static readonly CharEncoding SingleQuote =				
				new CharEncoding("&quot;",		"&#34;",	"&#x22;",	"\u0022",	"'"	 	);		// quotation mark = APL quote
		public static readonly CharEncoding Ampersand =				
				new CharEncoding("&amp;",		"&#38;",	"&#x26;",	"\u0026",	"&" 	);		// ampersand
		public static readonly CharEncoding LessThan =				
				new CharEncoding("&lt;",		"&#60;",	"&#x3C;",	"\u003C",	"<" 	);		// less-than sign
		public static readonly CharEncoding GreaterThan =				
				new CharEncoding("&gt;",		"&#62;",	"&#x3E;",	"\u003E",	">" 	);		// greater-than sign
		public static readonly CharEncoding OEligatureUpper =				
				new CharEncoding("&OElig;",		"&#338;",	"&#x152;",	"\u0152",	"OE" 	);		// Latin capital ligature OE
		public static readonly CharEncoding OEligatureLower =				
				new CharEncoding("&oelig;",		"&#339;",	"&#x153;",	"\u0153",	"oe" 	);		// Latin small ligature oe
		public static readonly CharEncoding ScaronUpper =				
				new CharEncoding("&Scaron;",	"&#352;",	"&#x160;",	"\u0160",	"S" 	);		// Latin capital letter S with caron
		public static readonly CharEncoding ScaronLower =				
				new CharEncoding("&scaron;",	"&#353;",	"&#x161;",	"\u0161",	"s" 	);		// Latin small letter s with caron
		public static readonly CharEncoding YdiaeresisUpper =				
				new CharEncoding("&Yuml;",		"&#376;",	"&#x178;",	"\u0178",	"Y" 	);		// Latin capital letter Y with diaeresis
		public static readonly CharEncoding Circumflex =				
				new CharEncoding("&circ;",		"&#710;",	"&#x2C6;",	"\u02C6",	"^" 	);		// modifier letter circumflex accent
		public static readonly CharEncoding SmallTilde =				
				new CharEncoding("&tilde;",		"&#732;",	"&#x2DC;",	"\u02DC",	"~" 	);		// small tilde
		public static readonly CharEncoding EnSpace =				
				new CharEncoding("&ensp;",		"&#8194;",	"&#x2002;",	"\u2002",	" " 	);		// en space
		public static readonly CharEncoding EmSpace =				
				new CharEncoding("&emsp;",		"&#8195;",	"&#x2003;",	"\u2003",	" " 	);		// em space
		public static readonly CharEncoding ThinSpace =				
				new CharEncoding("&thinsp;",	"&#8201;",	"&#x2009;",	"\u2009",	" " 	);		// thin space
		public static readonly CharEncoding ZeroWidthNonJoiner =				
				new CharEncoding("&zwnj;",		"&#8204;",	"&#x200C;",	"\u200C",	""	 	);		// zero width non-joiner
		public static readonly CharEncoding ZeroWidthJoiner =				
				new CharEncoding("&zwj;",		"&#8205;",	"&#x200D;",	"\u200D",	""	 	);		// zero width joiner
		public static readonly CharEncoding LeftToRight =				
				new CharEncoding("&lrm;",		"&#8206;",	"&#x200E;",	"\u200E",	""	 	);		// left-to-right mark
		public static readonly CharEncoding RightToLeft =				
				new CharEncoding("&rlm;",		"&#8207;",	"&#x200F;",	"\u200F",	""	 	);		// right-to-left mark
		public static readonly CharEncoding EnDash =				
				new CharEncoding("&ndash;",		"&#8211;",	"&#x2013;",	"\u2013",	"-" 	);		// en dash
		public static readonly CharEncoding EmDash =				
				new CharEncoding("&mdash;",		"&#8212;",	"&#x2014;",	"\u2014",	"--" 	);		// em dash
		public static readonly CharEncoding LeftSingleQuote =		
				new CharEncoding("&lsquo;",		"&#8216;",	"&#x2018;",	"\u2018",	"'" 	);		// left single quotation mark
		public static readonly CharEncoding RightSingleQuote =		
				new CharEncoding("&rsquo;",		"&#8217;",	"&#x2019;",	"\u2019",	"'" 	);		// right single quotation mark
		public static readonly CharEncoding SingleLow9Quote =				
				new CharEncoding("&sbquo;",		"&#8218;",	"&#x201A;",	"\u201A",	""	 	);		// single low-9 quotation mark
		public static readonly CharEncoding LeftDoubleQuote =		
				new CharEncoding("&ldquo;",		"&#8220;",	"&#x201C;",	"\u201C",	"\""	);		// left double quotation mark
		public static readonly CharEncoding RightDoubleQuote =		
				new CharEncoding("&rdquo;",		"&#8221;",	"&#x201D;",	"\u201D",	"\""	);		// right double quotation mark
		public static readonly CharEncoding DoubleLow9Quote =				
				new CharEncoding("&bdquo;",		"&#8222;",	"&#x201E;",	"\u201E",	""	 	);		// double low-9 quotation mark
		public static readonly CharEncoding Dagger =				
				new CharEncoding("&dagger;",	"&#8224;",	"&#x2020;",	"\u2020",	""	 	);		// dagger
		public static readonly CharEncoding DoubleDagger =			
				new CharEncoding("&Dagger;",	"&#8225;",	"&#x2021;",	"\u2021",	""	 	);		// double dagger
		public static readonly CharEncoding PerMille =				
				new CharEncoding("&permil;",	"&#8240;",	"&#x2030;",	"\u2030",	""	 	);		// per mille sign
		public static readonly CharEncoding LeftSingleAngleQuote =	
				new CharEncoding("&lsaquo;",	"&#8249;",	"&#x2039;",	"\u2039",	"<" 	);		// single left-pointing angle quotation mark
		public static readonly CharEncoding RightSingleAngleQuote =	
				new CharEncoding("&rsaquo;",	"&#8250;",	"&#x203A;",	"\u203A",	">" 	);		// single right-pointing angle quotation mark
		public static readonly CharEncoding Euro =					
				new CharEncoding("&euro;",		"&#8364;",	"&#x20AC;",	"\u20AC",	"Eu" 	);		// euro sign

#if false
		public const char HorizontalBar = '\u2015';
		public const char OneThird = '\u2153';
		public const char TwoThirds = '\u2154';
#endif
	}
}
